Method of processing positioning data

ABSTRACT

A server arranged to process GPS data to generate enhanced map data is disclosed. The enhanced map data includes a plurality of navigable segments representing segments of a navigable route in an area covered by a map. In at least one embodiment, the server is connected with a wireless telecommunications transceiver arranged to receive GPS fixes by wireless telecommunication from a plurality of navigation devices and send the received GPS fixes to the server, the server includes a processor arranged to generate at least one speed profile for each segment from the GPS fixes from at least two of the plurality of navigation devices, each speed profile comprising an expected speed of travel through the segment, and the server is arranged to subsequently cause the transceiver to send the speed profiles to the navigation devices.

This application is a National Phase entry of PCT Application number PCT/EP2008/064318 filed on Oct. 22, 2008, which claims priority under 35 U.S.C. §119(e), 120 and 365(c) to U.S. Provisional Application Nos. 60/996,050, filed on Oct. 26, 2007 and 60/996,052, filed on Oct. 26, 2007.

FIELD OF THE INVENTION

The invention relates to a method of processing positioning data and in particular to processing positioning data in order to generate map data arranged to be used in navigation devices and in particular, but not especially in a Portable Navigation Device (PND). The invention also provides related apparatus for providing the method.

BACKGROUND OF THE INVENTION

Map data for electronic navigation devices, such as GPS based personal navigation devices like the GO™ from TomTom International BV, comes from specialist map vendors such as Tele Atlas NV. Such devices are also referred to as Portable Navigation Devices (PND's). This map data is specially designed to be used by route guidance algorithms, typically using location data from the GPS system. For example, roads can be described as lines—i.e. vectors (e.g. start point, end point, direction for a road, with an entire road being made up of many hundreds of such segments, each uniquely defined by start point/end point direction parameters). A map is then a set of such road vectors, data associated with each vector (speed limit; travel direction, etc.) plus points of interest (POIs), plus road names, plus other geographic features like park boundaries, river boundaries, etc., all of which are defined in terms of vectors. All map features (e.g. road vectors, POIs etc.) are typically defined in a co-ordinate system that corresponds with or relates to the GPS co-ordinate system, enabling a device's position as determined through a GPS system to be located onto the relevant road shown in a map and for an optimal route to be planned to a destination.

To construct this map database, Tele Atlas starts with basic road information from various sources, such as the Ordnance Survey for roads in England. It also has a large, dedicated team of vehicles driving on roads, plus personnel checking other maps and aerial photographs, to update and check its data. This data constitutes the core of the Tele Atlas map database. This map database is being continuously enhanced with geo-referenced data. It is then checked and published four times a year to device manufacturers like TomTom.

Each such road segment has associated therewith a speed parameter for that road segment which gives an indication of the speed at which a vehicle can travel along that segment and is an average speed generated by the party that produced the map data, which may be, for example, Tele Atlas. The speed parameter is used by route planning algorithms on PND's on which the map is processed. The accuracy of such route planning thus depends on the accuracy of the speed parameter. For example, a user is often presented with an option on his/her PND to have it generate the fastest route between the current location of the device and a destination. The route calculated by the PND may well not be the fastest route if the speed parameters are inaccurate.

It is known that parameters such as density of traffic can significantly effect the speed profile of a segment of road and such speed profile variations mean that the quickest route between two points may not remain the same. Inaccuracies in the speed parameter of a road segment can also lead to inaccurate Estimated Times of Arrival (ETA) as well as selection of a sub-optimal quickest route.

Tele Atlas have developed a system in which GPS data is uploaded from PND's and used to provide speed parameters for segments of the map data which aims to provide speed parameters which show the true speed on a road segment at predetermined times of a day.

SUMMARY OF THE INVENTION

According to a first aspect of the invention there is provided a server arranged to process GPS data to generate map data comprising a plurality of navigable segments representing segments of a navigable route in an area covered by a map, the server connected with a wireless telecommunications transceiver arranged to receive GPS fixes by wireless telecommunication from a plurality of navigation devices and send the received GPS fixes to the server, the server comprising a processor arranged to generate at least one speed profile for each segment from the GPS fixes from at least two of the plurality of navigation devices, each speed profile comprising an expected speed of travel through the segment, and the server arranged to subsequently cause the transceiver to send the speed profiles to the navigation devices.

The server may be advantageous because it allows the speed profiles associated with each navigable segment in the area covered by the map data to be up-dated wirelessly, in particular the map data on the navigation devices can be up-dated in “real-time”, i.e. while the navigation device is providing instructions for a determined route. Real-time updates of the map data may provide the navigation device with a better indication of the traffic flow along that road segment than the old map data, which may well increase the accuracy of routing algorithms to determine a journey across the area represented by the map data.

The speed profile may be an average speed of travel of navigation devices, including the plurality of navigation devices, through the segment. The speed profile may be an average speed that navigation devices have traveled through the segment in a predetermined time period, for example during the last hour. In this way, the speed profile may provide an indication of the current traffic behaviour.

According to a second aspect of the invention there is provided a method of processing GPS data to generate map data comprising a plurality of navigable segments representing segments of a navigable route in an area covered by the map, the method comprising transmitting GPS fixes from a plurality of navigation devices by wireless telecommunication to a processor, causing a processor to generate at least one speed profile for each segment from the GPS fixes from at least two of the plurality of navigation devices, each speed profile comprising an expected speed of travel through the segment, and sending the speed profiles to the navigation devices by wireless telecommunications.

According to a third aspect of the invention there is provided a navigation device for determining a route across an area, the navigation device comprising a wireless telecommunications transceiver, memory having stored thereon map data comprising a plurality of navigable segments representing segments of a navigable route in the area covered by the map data, at least one of the navigable segments has associated therewith a speed profile, and a processor arranged to calculate a navigable route using the map data and, in response to at least one updated speed profile being received via the transceiver and if the navigation device is providing routing instructions for the calculated navigable route, recalculate the navigable route using the at least one updated speed profile.

The navigation device may be advantageous as the determined navigable route is recalculated to take into account any changes in the speed profiles for segments of the map data on which the route is based. This may increase the accuracy of routing algorithms to determine a journey across the area represented by the map data.

The navigation device may comprise a positioning device for determining position fixes for the navigation device, the processor arranged to send the position fixes to a server over a telecommunications network via the transceiver such that the server can identify routes the navigation device has traveled. The positioning device may be a GPS device that generates GPS fixes. In this way, the navigation device can provide position data to the server on the move. This may allow the server to calculate speed profiles that are representative of the current traffic behaviour.

The processor may be arranged to identify segments within a predetermined distance of a current position of the navigation device and to change the speed profile for the identified segments or one of the updated speed profiles. The predetermined distance may be segments within a particular area around the navigation device, for example a substantially rectangular or circular shaped area around the navigation device. The distance between the navigation device and an edge of the area may be of the order of tens or hundreds of kilometers, preferably between 50 and 200 km. The processor may not change the speed profiles of segments outside of the predetermined distance of the current position of the navigation device to the updated speed profile. By the processor only changing the speed profiles for segments within a predetermined distance of the navigation device, the amount of processing that is required is reduced relative to changing all of the speed profiles. Only changing the speed profiles for segments within a predetermined distance of the navigation device may not affect the accuracy of the route determined as a vehicle/person with which the navigation device is travelling is unlikely to travel to segments outside of the predetermined distance during the time which the updated speed profile is relevant.

For example, the updated speed profile may be provided to take account of a sudden drop in average speeds through segments due to an accident and the navigation device only needs to change the speed profile for the effected segments if the navigation device will travel on those segments whilst they are affected by the accident. It is likely that if the navigation device is in a vehicle, such as a car, the effects of an accident on segments hundreds of kilometres from the current position of the vehicle will clear before a vehicle reaches these segments. Accordingly, if the route determined by the navigation device is for a motorised vehicle, the predetermined distance may be of the order to hundreds of kilometres, for example 100 to 200 km. If the route determined by the navigation device is for a non-motorised vehicle, such as a bicycle, then the predetermined distance may be of the order to tens of kilometres.

The processor may be arranged to determine the predetermined distance from a current speed at which the navigation device is travelling. For example, the predetermined distance may be the current speed of the navigation device multiplied by a preset time, for example one or more hours. The preset time may be a typical time for the traffic behaviour to return to normal after an unusual event, such as a traffic accident. Alternatively, the preset time may be an estimated time for which the updated profile applies sent to the navigation device, for example by the server.

In another embodiment, the predetermined distance is based on the bandwidth for the transmission of signals between the navigation device and a server that provides the updated speed profile. In this way, a balance may be automatically determined between accuracy of the speed profiles of the map data and the quantity of data sent to the navigation device. Accordingly, in one embodiment, the navigation device may only receive updated speed profiles for segments within the predetermined distance of the current position of the navigation device.

According to a fourth aspect of the invention there is provided a navigation device for the determination a route, the navigation device comprising a wireless telecommunications transceiver, memory having stored thereon map data, a GPS receiver and a processor arranged to send GPS fixes obtained by the GPS receiver to a server via the wireless telecommunication transceiver and calculate navigable routes using the map data, on request from a user.

In this way, the navigation device can provide GPS fixes to a server in real-time, or at least pseudo real time, such that a server can calculate speed profiles for map data and the device can calculate navigable routes.

According to a fifth aspect of the invention there is provided a data carrier containing instructions, which when read by a processor of a server, the server comprising a wireless telecommunications transceiver and the processor, cause the processor to operate in accordance with the first aspect of the invention.

According to a sixth aspect of the invention there is provided a data carrier containing instructions, which when read by a processor of a navigation device cause the navigation device to operate in accordance with the third or fourth aspects of the invention.

The navigable segments generally represent segments of a road but may also represent segments of any other path, channel or the like navigable by a vehicle, person or the like. For example, a navigable segment may represent a segment of a path, river, canal, cycle path, tow path, rail way line, or the like.

Reference is made herein to speed data being associated with a road segment. The skilled person will appreciate that each road segment is represented by data within the map data providing the map. In some embodiments, such data representing the road segment may include an identifier which provides a reference to the speed data. For example the reference may provide a reference to a generated speed profile. This reference may be provided in the form of a look-up table.

In any of the above aspects of the invention the machine readable medium may comprise any of the following: a floppy disk, a CD ROM, a DVD ROM/RAM (including a −R/−RW and +R/+RW), a hard drive, a memory (including a USB memory key, an SD card, a Memorystick™, a compact flash card, or the like), a tape, any other form of magneto optical storage, a transmitted signal (including an Internet download, an FTP transfer, etc), a wire, or any other suitable medium.

BRIEF DESCRIPTION OF THE DRAWINGS

At least one embodiment of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which:

FIG. 1 is a schematic illustration of an exemplary part of a Global Positioning System (GPS) usable by a navigation device;

FIG. 2 a is a schematic diagram of a communications system for communication between a navigation device and a server;

FIG. 2 b is a schematic diagram of a communication system for communication between a plurality of navigation devices and a server;

FIG. 3 is a schematic illustration of electronic components of the navigation device of FIG. 2 a or any other suitable navigation device;

FIG. 4 is a schematic diagram of an arrangement of mounting and/or docking a navigation device;

FIG. 5 is a schematic representation of an architectural stack employed by the navigation device of FIG. 3; and

FIG. 6 shows a flowchart outlining an embodiment for matching GPS fixes within a trace to a map.

DETAILED DESCRIPTION OF EMBODIMENT OF THE INVENTION

Throughout the following description identical reference numerals will be used to identify like parts.

Embodiments of the present invention will now be described with particular reference to a Portable Navigation Device (PND). It should be remembered, however, that the teachings of the present invention are not limited to PNDs but are instead universally applicable to any type of processing device that is configured to execute navigation software in a portable manner so as to provide route planning and navigation functionality. It follows therefore that in the context of the present application, a navigation device is intended to include (without limitation) any type of route planning and navigation device, irrespective of whether that device is embodied as a PND, a vehicle such as an automobile, or indeed a portable computing resource, for example a portable personal computer (PC), a mobile telephone or a Personal Digital Assistant (PDA) executing route planning and navigation software.

Further, embodiments of the present invention are described with reference to road segments. It should be realised that the invention may also be applicable to other navigable segments, such as segments of a path, river, canal, cycle path, tow path, rail way line, or the like. For ease of reference these are commonly referred to as a road segment.

It will also be apparent from the following that the teachings of the present invention even have utility in circumstances, where a user is not seeking instructions on how to navigate from one point to another, but merely wishes to be provided with a view of a given location. In such circumstances the “destination” location selected by the user need not have a corresponding start location from which the user wishes to start navigating, and as a consequence references herein to the “destination” location or indeed to a “destination” view should not be interpreted to mean that the generation of a route is essential, that travelling to the “destination” must occur, or indeed that the presence of a destination requires the designation of a corresponding start location.

With the above provisos in mind, the Global Positioning System (GPS) of FIG. 1 and the like are used for a variety of purposes. In general, the GPS is a satellite-radio based navigation system capable of determining continuous position, velocity, time, and in some instances direction information for an unlimited number of users. Formerly known as NAVSTAR, the GPS incorporates a plurality of satellites which orbit the earth in extremely precise orbits. Based on these precise orbits, GPS satellites can relay their location, as GPS data, to any number of receiving units. However, it will be understood that Global Positioning systems could be used, such as GLOSNASS, the European Galileo positioning system, COMPASS positioning system or IRNSS (Indian Regional Navigational Satellite System).

The GPS system is implemented when a device, specially equipped to receive GPS data, begins scanning radio frequencies for GPS satellite signals. Upon receiving a radio signal from a GPS satellite, the device determines the precise location of that satellite via one of a plurality of different conventional methods. The device will continue scanning, in most instances, for signals until it has acquired at least three different satellite signals (noting that position is not normally, but can be determined, with only two signals using other triangulation techniques). Implementing geometric triangulation, the receiver utilizes the three known positions to determine its own two-dimensional position relative to the satellites. This can be done in a known manner. Additionally, acquiring a fourth satellite signal allows the receiving device to calculate its three dimensional position by the same geometrical calculation in a known manner. The position and velocity data can be updated in real time on a continuous basis by an unlimited number of users.

As shown in FIG. 1, the GPS system 100 comprises a plurality of satellites 102 orbiting about the earth 104. A GPS receiver 106 receives GPS data as spread spectrum GPS satellite data signals 108 from a number of the plurality of satellites 102. The spread spectrum data signals 108 are continuously transmitted from each satellite 102, the spread spectrum data signals 108 transmitted each comprise a data stream including information identifying a particular satellite 102 from which the data stream originates. The GPS receiver 106 generally requires spread spectrum data signals 108 from at least three satellites 102 in order to be able to calculate a two-dimensional position. Receipt of a fourth spread spectrum data signal enables the GPS receiver 106 to calculate, using a known technique, a three-dimensional position.

Turning to FIG. 2 a, a navigation device 200 (ie a PND) comprising a positioning device, in this embodiment a GPS receiver device 106, and a wireless transceiver, comprising transmitter 165 and receiver 168, capable of establishing a data session with network hardware of a telecommunications network, such as a cellular network. The wireless communication may be infrared communications, radio frequency communications, such as microwave frequency communications, satellite communication, etc.

Thereafter, through the telecommunications network, the device 200 can establish a communication channel 152 (which also may involve other networks in addition to the telecommunications network, such as the Internet for example) with a server 150. As such, a wireless network connection can be established between the navigation device 200 (which can be, and often times is, mobile as it travels alone and/or in a vehicle) and the server 150 to provide a “real-time” or at least very “up to date” gateway for information.

The navigation device 200 may utilise “mobile phone technology” within the navigation device 200, such as an inbuilt GPRS modem, and can include internal components, and/or an insertable card (e.g. Subscriber Identity Module (SIM) card), complete with necessary mobile phone technology and/or an antenna.

The establishing of the network connection between the navigation device 200 and the server 150, using the Internet for example, can be done in a known manner. In this respect, any number of appropriate data communications protocols can be employed, for example the TCP/IP layered protocol. Furthermore, the navigation device can utilize any number of communication standards such as CDMA2000, GSM, IEEE 802.11a/b/c/g/n, etc.

The communication channel 152 is not limited to a particular telecommunications communication technology. Additionally, the communication channel 152 is not limited to a single wireless communication technology; that is, the channel 152 may include several communication links that use a variety of technology. For example, the communication channel 152 can be adapted to provide a path for electrical, optical, and/or electromagnetic communications, etc as well as the wireless communication. Furthermore, the communication channel 152 can include intermediate devices such as routers, repeaters, buffers, transmitters, and receivers, for example.

In one illustrative arrangement, the communication channel 152 includes telephone and computer networks.

The communication signals transmitted through the communication channel 152 include, but are not limited to, signals as may be required or desired for given communication technology. For example, the signals may be adapted to be used in cellular communication technology such as Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), etc. Both digital and analogue signals can be transmitted through the communication channel 152. These signals may be modulated, encrypted and/or compressed signals as may be desirable for the communication technology.

The server 150 includes, in addition to other components which may not be illustrated, a processor 154 operatively connected to a memory 156 and further operatively connected, via a wired or wireless connection 158, to a mass data storage device 160. The mass storage device 160 contains a store of navigation data and map information, and can again be a separate device from the server 150 or can be incorporated into the server 150. The processor 154 is further operatively connected to transmitter 162 and receiver 164, to transmit and receive information to and from navigation device 200 via communications channel 152. The signals sent and received may include data, communication, and/or other propagated signals. The transmitter 162 and receiver 164 may be selected or designed according to the communications requirement and communication technology used in the communication design for the navigation system 200. Further, it should be noted that the functions of transmitter 162 and receiver 164 may be combined into a single transceiver.

As mentioned above, the navigation device 200 can be arranged to communicate with the server 150 through communications channel 152, using transmitter 166 and receiver 168 to send and receive signals and/or data through the communications channel 152, noting that these devices can further be used to communicate with devices other than server 150. Further, the transmitter 166 and receiver 168 are selected or designed according to communication requirements and communication technology used in the communication design for the navigation device 200 and the functions of the transmitter 166 and receiver 168 may be combined into a single transceiver as described above in relation to FIG. 2 a. Of course, the navigation device 200 comprises other hardware and/or functional parts, which will be described later herein in further detail.

Software stored in server memory 156 provides instructions for the processor 154 and allows the server 150 to provide services to the navigation device 200. One service provided by the server 150 involves processing requests from the navigation device 200 and transmitting navigation data from the mass data storage 160 to the navigation device 200. Another service that can be provided by the server 150 includes processing the navigation data using various algorithms for a desired application and sending the results of these calculations to the navigation device 200.

The server 150 constitutes a remote source of data accessible by the navigation device 200 via a wireless channel. The server 150 may include a network server located on a local area network (LAN), wide area network (WAN), virtual private network (VPN), etc.

The navigation device 200 may be provided with information from the server 150 via information downloads which may be updated automatically, from time to time, or upon a user connecting the navigation device 200 to the server 150 and/or may be more dynamic upon a more constant or frequent connection being made between the server 150 and navigation device 200 via the wireless connection. For many dynamic calculations, the processor 154 in the server 150 may be used to handle the bulk of processing needs, however, a processor (not shown in FIG. 2 a) of the navigation device 200 can also handle much processing and calculation, oftentimes independent of a connection to a server 150.

Referring to FIG. 2 b, the server 150 is arranged to communicate with a plurality of navigation devices 200 a to 200 i over, in this embodiment, a cellular telecommunications network 300 and the Internet 301. Each navigation device 200 a to 200 i corresponds to the navigation device 200, described with reference to FIG. 2 a, and has a GPS receiver for obtaining GPS position fixes. In this embodiment, the navigation devices 200 a to 200 i communicate with base stations 300 a to 300 c of a telecommunications network 300 and these base stations 300 a to 300 c subsequently pass signals received from the navigation servers 200 a to 200 i to server 150 via the Internet 301. Equally, the server 150 is capable of sending signals to each of the navigation devices 200 a to 200 i via the Internet 301 and an appropriate base station 300 a to 300 c.

Referring to FIG. 3, it should be noted that the block diagram of the navigation device 200 is not inclusive of all components of the navigation device, but is only representative of many example components. The navigation device 200 is located within a housing (not shown). The navigation device 200 includes processing circuitry comprising, for example, the processor 202 mentioned above, the processor 202 being coupled to an input device 204 and a display device, for example a display screen 206. Although reference is made here to the input device 204 in the singular, the skilled person should appreciate that the input device 204 represents any number of input devices, including a keyboard device, voice input device, touch panel and/or any other known input device utilised to input information. Likewise, the display screen 206 can include any type of display screen such as a Liquid Crystal Display (LCD), for example.

In one arrangement, one aspect of the input device 204, the touch panel, and the display screen 206 are integrated so as to provide an integrated input and display device, including a touchpad or touchscreen input 250 (FIG. 4) to enable both input of information (via direct input, menu selection, etc.) and display of information through the touch panel screen so that a user need only touch a portion of the display screen 206 to select one of a plurality of display choices or to activate one of a plurality of virtual or “soft” buttons. In this respect, the processor 202 supports a Graphical User Interface (GUI) that operates in conjunction with the touchscreen.

In the navigation device 200, the processor 202 is operatively connected to and capable of receiving input information from input device 204 via a connection 210, and operatively connected to at least one of the display screen 206 and the output device 208, via respective output connections 212, to output information thereto. The navigation device 200 may include an output device 208, for example an audible output device (e.g. a loudspeaker). As the output device 208 can produce audible information for a user of the navigation device 200, it should equally be understood that input device 204 can include a microphone and software for receiving input voice commands as well. Further, the navigation device 200 can also include any additional input device 204 and/or any additional output device, such as audio input/output devices for example.

The processor 202 is operatively connected to memory 214 via connection 216 and is further adapted to receive/send information from/to input/output (I/O) ports 218 via connection 220, wherein the I/O port 218 is connectible to an I/O device 222 external to the navigation device 200. The external I/O device 222 may include, but is not limited to an external listening device, such as an earpiece for example. The connection to I/O device 222 can further be a wired or wireless connection to any other external device such as a car stereo unit for hands-free operation and/or for voice activated operation for example, for connection to an earpiece or headphones, and/or for connection to a mobile telephone for example, wherein the mobile telephone connection can be used to establish a data connection between the navigation device 200 and the Internet or any other network for example, and/or to establish a connection to a server via the Internet or some other network for example.

The memory 214 of the navigation device 200 comprises a portion of non-volatile memory (for example to store program code) and a portion of volatile memory (for example to store data as the program code is executed). The navigation device also comprises a port 228, which communicates with the processor 202 via connection 230, to allow a removable memory card (commonly referred to as a card) to be added to the device 200. In the embodiment being described the port is arranged to allow an SD (Secure Digital) card to be added. In other embodiments, the port may allow other formats of memory to be connected (such as Compact Flash (CF) cards, Memory Sticks™, xD memory cards, USB (Universal Serial Bus) Flash drives, MMC (MultiMedia) cards, SmartMedia cards, Microdrives, or the like).

FIG. 3 further illustrates an operative connection between the processor 202 and an antenna/receiver 224 via connection 226, wherein the antenna/receiver 224 can be a GPS antenna/receiver for example and as such would function as the GPS receiver 106 of FIG. 1. It should be understood that the antenna and receiver designated by reference numeral 224 are combined schematically for illustration, but that the antenna and receiver may be separately located components, and that the antenna may be a GPS patch antenna or helical antenna for example.

It will, of course, be understood by one of ordinary skill in the art that the electronic components shown in FIG. 3 are powered by one or more power sources (not shown) in a conventional manner. Such power sources may include an internal battery and/or a input for a low voltage DC supply or any other suitable arrangement. As will be understood by one of ordinary skill in the art, different configurations of the components shown in FIG. 3 are contemplated. For example, the components shown in FIG. 3 may be in communication with one another via wired and/or wireless connections and the like. Thus, the navigation device 200 described herein can be a portable or handheld navigation device 200.

In addition, the portable or handheld navigation device 200 of FIG. 3 can be connected or “docked” in a known manner to a vehicle such as a bicycle, a motorbike, a car or a boat for example. Such a navigation device 200 is then removable from the docked location for portable or handheld navigation use. Indeed, in other embodiments, the device 200 may be arranged to be handheld to allow for navigation of a user.

Referring to FIG. 4, the navigation device 200 may be a unit that includes the integrated input and display device 206 and the other components of FIG. 2 a (including, but not limited to, the internal GPS receiver 224, the processor 202, a power supply (not shown), memory systems 214, etc.).

The navigation device 200 may sit on an arm 252, which itself may be secured to a vehicle dashboard/window/etc. using a suction cup 254. This arm 252 is one example of a docking station to which the navigation device 200 can be docked. The navigation device 200 can be docked or otherwise connected to the arm 252 of the docking station by snap connecting the navigation device 200 to the arm 252 for example. The navigation device 200 may then be rotatable on the arm 252. To release the connection between the navigation device 200 and the docking station, a button (not shown) on the navigation device 200 may be pressed, for example. Other equally suitable arrangements for coupling and decoupling the navigation device 200 to a docking station are well known to persons of ordinary skill in the art.

Turning to FIG. 5, the processor 202 and memory 214 cooperate to support a BIOS (Basic Input/Output System) 282 that functions as an interface between functional hardware components 280 of the navigation device 200 and the software executed by the device. The processor 202 then loads an operating system 284 from the memory 214, which provides an environment in which application software 286 (implementing some or all of the described route planning and navigation functionality) can run. The application software 286 provides an operational environment including the Graphical User Interface (GUI) that supports core functions of the navigation device, for example map viewing, route planning, navigation functions and any other functions associated therewith. In this respect, part of the application software 286 comprises a view generation module 288.

The navigation device 200 is arranged such that the user can download map data into memory 214 or the memory card in card port 228. The map data comprises a plurality of navigable segments representing segments of a navigable route in the area covered by the map data, each of the navigable segments having associated therewith a speed profile. Each speed profile may comprise a plurality of average speeds through the segment for different weekly recurring time periods. The processor 202 of the navigation device 200 is arranged to determine a navigable route requested by a user using the map data and this navigable route may be based on the speed profiles. For example, the processor 202 may use the speed profiles to determine the fastest route and/or an estimate of the time of travel along the route.

In the embodiment being described, the processor 202 of the navigation device is programmed to receive GPS data received by the antenna 224 and, from time to time, to store that GPS data, together with a time stamp of when the GPS data was received, within the memory 214 to build up a record of the location of the navigation device. Each data record so-stored may be thought of as a GPS fix; ie it is a fix of the location of the navigation device and comprises a latitude, a longitude, a time stamp and an accuracy report.

In one embodiment the data is stored substantially on a periodic basis which is for example every 5 seconds. The skilled person will appreciate that other periods would be possible and that there is a balance between data resolution and memory capacity; ie as the resolution of the data is increased by taking more samples, more memory is required to hold the data. However, in other embodiments, the resolution might be substantially every: 1 second, 10 seconds, 15 seconds, 20 seconds, 30 seconds, 45 seconds, 1 minute, 2.5 minutes (or indeed, any period in between these periods). Thus, within the memory of the device there is built up a record of the whereabouts of the device 200 at points in time.

In some embodiments, it may be found that the quality of the captured data reduces as the period increases and whilst the degree of degradation will at least in part be dependent upon the speed at which the navigation device 200 was moving a period of roughly 15 seconds may provide a suitable upper limit.

Whilst the navigation device 200 is generally arranged to build up a record of its whereabouts, some embodiments, do not record data for a predetermined period and/or distance at the start or end of a journey. Such an arrangement helps to protect the privacy of the user of the navigation device 200 since it is likely to protect the location of his/her home and other frequented destinations. For example, the navigation device 200 may be arranged not to store data for roughly the first 5 minutes of a journey and/or for roughly the first mile of a journey.

In other embodiments, the GPS may not be stored on a periodic basis but may be stored within the memory when a predetermined event occurs. For example, the processor 202 may be programmed to store the GPS data when the device passes a road junction, a change of road segment, or other such event.

Further, the processor 202 is arranged, from time to time, to upload the record of the whereabouts of the device 200 (ie the GPS data and the time stamp) to the server 150 via communication channel 152 including the wireless cellular network 300. The processor 202 is arranged to upload the record of the whereabouts on a substantially real time basis, although this may inevitably mean that data is in fact transmitted from time to time with a relatively short period between the transmissions, such as every 5, 10, 20, 30, 40, 50 seconds, minute, etc or any time between these times, and as such may be more correctly thought of as being pseudo real time. In such pseudo real time embodiments, the navigation device may be arranged to buffer the GPS fixes within the memory 214 and/or on a card inserted in the port 228 and to transmit these when a predetermined number have been stored. This predetermined number may be on the order of 20, 36, 100, 200 or any number in between. The skilled person will appreciate that the predetermined number is in part governed by the size of the memory 214/card within the port 228.

In the embodiment being described, the record of the whereabouts comprises one or more traces with each trace representing the movement of that navigation device 200 within a 24 hour period. Each 24 is arranged to coincide with a calendar day but in other embodiments, this need not be the case.

Generally, a user of a navigation device 200 gives his/her consent for the record of the devices whereabouts to be uploaded to the server 150. If no consent is given then no record is uploaded to the server 150. The navigation device itself, and/or a computer to which the navigation device is connected may be arranged to ask the user for his/her consent to such use of the record of whereabouts.

The server 150 is arranged to receive the record of the whereabouts of the device and to store this within the mass data storage 160 for processing. Thus, as time passes the mass data storage 160 accumulates a plurality of records of the whereabouts of navigation devices 200 a to 200 i which have uploaded data. From these records the server 150 is arranged to generate speed profiles, as now described.

As discussed above, the mass data storage 160 also contains map data. Such map data provides information about the location of road segments, points of interest and other such information that is generally found on map.

As a first process, the server 150 is arranged to perform a map matching function between the map data and the GPS fixes contained within the records of the whereabouts that have been received and such a process is described in relation to FIG. 6. Such map matching may be performed in a so-called real time manner; ie as the records of whereabouts are received or may be performed a time later after the records of the whereabouts have been recalled from the mass data storage 160.

In order to increase the accuracy of the map matching, pre-processing of the records of the whereabouts is performed as follows. Each GPS trace (ie a 24 hour period of GPS data) is divided 600 into one or more trips with each trip representing a single journey of the navigation device 200 which are subsequently stored for later processing.

Within each trip GPS fixes whose accuracy report received from the navigation device is not sufficiently high are rejected 602. Thus, in some embodiments, a fix may be rejected if the accuracy report indicates that the signals from less than three satellites 102 were being received by the navigation device 200 in relation to that GPS fix. Further, each trip is clipped 604 when the reported time between fixes goes above a threshold value. Each trip that passes this pre-processing stage is passed to be map matched.

In this context, a clipped trip is a trip in which the there is a predetermined time period between consecutive GPS fixes of greater than a predetermined time. As such, it might be inferred that the vehicle has remained stationary and as such it should be considered a first trip has ended and a second trip has commenced. Thus, a clipped trip becomes two separate trips.

However, before a trip is divided a check is made as to whether the position of the vehicle has changed between the last two fixes since a gap above the predetermined time between GPS fixes may also result from a loss of GPS signal and in such circumstances, the trip is not divided. In the embodiment being described, the predetermined time is roughly 3 minutes. However, the skilled person will appreciate that the gap may be any other suitable time, such as roughly any of the following: 15 seconds, 30 seconds, 1 minute, 90 seconds, 2 minutes, 5 minutes, 10 minutes or any time in between these. As discussed hereinafter, if the average speed of a navigation device 200 from which the GPS fixes are sent is below a predetermined threshold then data, may in some embodiments, be rejected in later processing. Such an embodiment can be useful in that it can remove data relating to so-called stop-start traffic which occurs after incidents such as a crash or the like which may leave remaining data more representative of steady state traffic flow.

Then, each trip is taken in turn and fixes within that trip are matched to a map from within the map data. Each map comprises a plurality of road segments along which it is possible to travel with each segment being represented within the map as a straight vector.

The program code running on the processor 154 of the server 150 provides a map matcher that is arranged to step over the or each fix in the trip that is being processed until it finds a fix which lies within a segment or is sufficiently close to a segment in order for it to be assumed to have occurred on that segment (ie it is within a distance threshold of the segment). This threshold allows for less than 100% GPS accuracy and the compressing effect of splitting the road into a set of straight vectors.

Each trip has an initial fix (ie the first fix within the trip) which is harder to associate with a segment than other fixes within the trip since there are no segments that have already identified which can be used to constrain the selection of the segments. If, for this first fix, multiple segments are within the threshold 606, then the algorithm looks to the next GPS fix (ie the 2nd fix) within the trip and generates a set of roots from those multiple segments based on the possible travel as a function of the distance between the 2 fixes (ie between the 1st and 2nd fixes). If the 2nd fix does not lead to a unique candidate segment for the 1st fix, then the algorithm moves to the 3rd fix within the trip and again generates and compares the possible routes to try and provide a unique candidate for the first fix 608. This process may continue until the remaining GPS fixes within a trip have been processed.

An advantage of such an embodiment is that although any one first fix in isolation may be near multiple segments, and in isolation these segments can not be distinguished between, it becomes possible using the further travel (ie the 2nd and 3rd fixes) to determine the identity of the segment with which the first fix is associated. Thus, a fist segment for a trip is determined by the map matcher.

Once the first segment has been identified for a trip, further fixes are processed in order to identify further segments. It is of course possible that the next fix of the trip lies within the same segment as the first fix 612.

Thus, the subsequent fixes of a trip are processed 610 to determine if they are within the distance threshold of the segment, and the map matcher is arranged to associate that segment with each of the fixes that lie within the distance threshold. When the map matcher process a fix that is outwith the distance threshold it is arranged to generate a new set of candidate segments for that fix. However, it is now possible to add a further constraint that the next segment is one which is connected to the end of the one which has just been processed. These neighbouring segments are obtained by the map matcher from the underlying map data.

If at any point the map matcher fails to identify a segment for a given fix that follows on from the previous segment, either because there are no segments within a threshold, or it cannot uniquely identify a single segment, then the map matcher is arranged to step through subsequent fixes 616 in order to further constrain the journey until it can identify a segment that is a unique match. That is, if the nth fix cannot be uniquely associated with a segment the nth+1 segment is used to further constrain the identification of a segment. If the nth+1 fix does not produce a unique segment then the nth+2 fix is used. In some embodiments, this process may carry on until the a unique segment is identified or all of the GPS fixes with a trip have been processed.

The map matcher is arranged to try and uniquely identify segments; in the embodiment being described, it does not attempt to create a continuous route, only to try and match segments to fixes. In other embodiments, it may be desirable to try and have the map matcher generate continuous routes.

Therefore, at the end of the process that the map matcher is arranged to perform, a series of road segments are obtained along which the navigation device 200 has traveled in the trip being analysed. Subsequently, the map matcher further processes these road segments and assigns, from the GPS fixes, an ingress time and also a transit time for that segment. These assigned times are stored within the mass data storage 160 for later processing. It may well be that a plurality of GPS fixes are stored for each road segment. However, regardless of whether how many GPS fixes are associated with each segment, the ingress time, GPS fixes and the length of the segment (which in this embodiment is stored within the map data) are used to calculate the average speed for that segment of road. This average speed is then stored within the mass data storage 160 associated with the relevant assigned times and that segment. Information relating to a speed of traffic flow on a road segment and assigned to a road segment may be thought of as being speed data for that road segment.

The server 150 is further arranged to run averaging program code on the processor 154 to provide an averager which processes the assigned times to generate one or more averages therefrom as described below. The averaging process used in this embodiment is now described.

In a first step of the process, the averager groups the average speeds for each road segment on the map based on the time in which that average speed occurred, such as the last 5 minutes, 10 minutes, 15 minutes, 30 minutes, or any time in between these times.

Before an average speed generated from a trip is grouped into a predetermined time period it is screened to try and increase data quality. In this embodiment, the average speed is only added to the group for the predetermined period if the average speed falls within a predetermined range. In this embodiment, the method excludes speeds which exceed a maximum predetermined threshold (which may be roughly 180 km/h) and further, the method excludes speeds which fall below a predetermined amount of the average speed for that segment in that predetermined time period (which may for example be 2 km/h). In other embodiments, the max permitted speed may be set as the speed limit for that segment of road, but the skilled person will appreciate that such information can be inaccurate in map data that is being processed and also that the speed limit for a segment of road may in fact not give an accurate indication of traffic conditions.

A predetermined time after a set time period has passed, for example, immediately after a set time period has passed, an average speed is calculated for each road segment for the set time period. There are several options for computing the average speed: using plain arithmetic or harmonic means or computing the median.

Thus, in the embodiment being described and for the map being processed there is generated for each segment of road on the map average speeds for the set time period that has recently passed. It will be appreciated that, in fact, not all road segments will necessarily have an average speed assigned thereto for every set time period since some roads may be traversed infrequently, particularly at unsociable times such as the early hours of the morning.

However, before the average speeds per segment are used quality checks are performed. In some embodiments, the average is rejected if there are fewer than 5 values that went to make up that average. Other embodiments may of course use different values, such as 2, 3, 4, 6, 7, 8, 10, 20 or more or any value in between these.

Also, a further check on the quality of the average is performed and for each average the standard deviation of the average is divided by the square root of the number of data samples that went to make up the average for that segment for that time period. If the result of this calculation is outside a predetermined threshold then that average is again rejected leaving a gap for that segment for that time period.

Further quality checks may be implemented to reject averages on any of the following: whether the deviation in the data is beyond a predetermined threshold; the existence of more than a predetermined number of outliers beyond a predetermined threshold. The skilled person will appreciate such statistical techniques to ensure the quality of the data.

The set of averages for any given road segment may be thought of as a measured speed profile for that road segment.

The skilled person will appreciate that if a measured speed profile for a road segment has few missing speed values (ie all or at least the majority of the predetermined time periods have a value) then that segment may be processed and the missing values are therefore masked.

Each average that passes these quality checks is considered trustworthy and is approved for use in the map data. The server 150 then sends these updated speed profiles to the navigation devices 200 a to 200 i via the communication channel 152.

Before sending the updated speed profiles to the navigation devices 200 a to 200 i, the processor of the server 150 may check to see how different the updated speed profiles are from the current speed profiles of the map data being used by the navigation devices 200. If the difference is above a predetermined threshold, then the updated speed profile is sent to the navigation devices, however, if it is not, then the updated speed profile is not sent to the navigation devices. This may help to reduce unnecessary processing and utilization of the available bandwidth.

In another embodiment, the speed profiles are not average speeds through a segment during a recent set period but are delays added to the current speed profiles, for example the average speed of the current speed profile minus a predicted speed differential, such as 5, 10, 15, 20, etc km/h. The predicted speed differential may be calculated using conventional algorithms as are known to the man skilled in the art.

On receiving the updated speed profiles, the navigation device 200 changes at least some of the speed profiles of the map data stored in memory 214 or a memory card in card port 228 to the updated speed profiles. In this way, speed profiles of the map data are updated in pseudo real time such that the map data stored on the navigation device gives a more accurate reflection of the current traffic conditions. If the navigation device is providing routing instructions for a calculated navigable route, the processor 202 may recalculate the navigable route using the updated speed profiles. In this way, the navigation device 200 may provide routes that automatically adapt to changes in the average speed of travel through segments of a navigable route.

In one embodiment, the processor 202 of the navigation device 200 does not utilise all of the updated speed profiles received from the server 150 but only changes the speed profiles for segments within a predetermined distance of a current position of the navigation device 200. For example, the processor 202, on receiving updated speed profiles may identify segments within a predetermined distance of a current position of the navigation device and changes the speed profile for each of the identified segments to an updated speed profile, if an updated speed profile has been received for that segment. The speed profiles of segments that fall outside the predetermined distance remain unchanged. The predetermined distance may be segments within a particular area around the navigation device, and in the case of a navigation device being used for directing a vehicle, the predetermined distance may be between 50 and 200 km.

For navigation devices that are adaptable to provide navigable routes for various forms of transport, such as walking, cycling, etc, in addition to motor vehicles, the processor 202 of the navigation device 200 may determine the predetermined distance from a current speed at which the navigation device is travelling. For example, the predetermined distance may be the current speed of the navigation device multiplied by a preset time, for example one or more hours.

In another embodiment, the predetermined distance is based on the bandwidth for the transmission of signals between the navigation device and a server that provides the updated speed profile.

In this embodiment, the updated speed profiles are temporarily held in the navigation device 200 for a predetermined length of time, such as 1 hour and, after which the navigation device 200 changes the speed profile back to the original speed profile or a further updated speed profile. The updated speed profile determined from a recent set time period may provide a better representation of the current traffic conditions for a brief period after the set time period but it is likely that, unless further updated speed profiles are received, the original speed profile, which is based on average speed calculated over a number time periods rather than a single time period, will give a better representation of the traffic conditions at a much later times, such as 1, 2 or 3 hours after the set time period.

The skilled person will appreciated that an apparatus provided to execute a method as described herein may comprise hardware, software, firmware or any combination of two or more of these.

The skilled person will appreciate that, whilst the term GPS data has been used to refer to position data derived from a GPS global positioning system as for example described in relation to FIG. 1, other position data could be processed in a manner similar to the methods as described herein. Thus, term GPS data may be replaceable with the phrase positioning data. Such position information could for example be derived from position information derived from mobile phone operation, data received at toll barriers, data obtained from induction loops embedded in roads, data obtained from number plate recognition system or any other suitable data. 

The invention claimed is:
 1. A method of processing map data comprising a plurality of the navigable segments representing segments of a navigable route in an area covered by the map data, wherein at least some of the navigable segments have speed data associated therewith representative of a measured speed profile, said measured speed profile comprising a plurality of average speeds of a plurality of navigation devices through the segment for different recurring time periods, the method comprising: receiving position data from a plurality of navigation devices by wireless telecommunication, the position data for each of the navigation devices being representative of the position of the navigation device over time; generating, by at least one processor, at least one updated speed profile indicative of current traffic behavior for a plurality of segments by processing the position data from at least two of the plurality of navigation devices, each updated speed profile comprising data representative of an average speed of travel through the segment for a time period that has recently passed; comparing, by the at least one processor, each updated speed profile with a respective average speed of the measured speed profile for the segment to determine if the average speed difference is above a predetermined threshold; identifying, by the at least one processor, for each navigation device, the segments within a predetermined distance of a current position of each of the navigation devices; and sending the at least one updated speed profile determined to have an average speed difference above the predetermined threshold for any identified segments to each navigation device by wireless telecommunications.
 2. The method according to claim 1, wherein the data representative of an average speed of travel through the segment for a time period that has recently passed of each updated speed profile comprises: (i) an average speed; or (ii) a speed differential to be added to the respective average speed of the measured speed profile for the segment.
 3. A non-transitory computer readable medium which stores a set of instructions which when executed performs a method for processing map data comprising a plurality of the navigable segments representing segments of a navigable route in an area covered by the map data, wherein at least some of the navigable segments have speed data associated therewith representative of a measured speed profile, said measured speed profile comprising a plurality of average speeds of a plurality of navigation devices through the segment for different recurring time periods, the method executed by the set of instructions comprising: receiving position data from a plurality of navigation devices by wireless telecommunication, the position data for each of the navigation devices being representative of the position of the navigation device over time; generating at least one updated speed profile indicative of current traffic behavior for a plurality of segments by processing the position data from at least two of the plurality of navigation devices, each updated speed profile comprising data representative of an average speed of travel through the segment for a time period that has recently passed; comparing each updated speed profile with a respective average speed of the measured speed profile for the segment to determine if the average speed difference is above a predetermined threshold; identifying for each navigation device, the segments within a predetermined distance of a current position of each of the navigation devices; and sending the at least one updated speed profile determined to have an average speed difference above the predetermined threshold for any identified segments to each navigation device by wireless telecommunications.
 4. A server arranged to process map data comprising: a memory comprising map data comprising a plurality of navigable segments which may be selected to define a navigable route in an area covered by the map data, at least some of the navigable segments having speed data associated therewith representative of a measured speed profile, said measured speed profile comprising a plurality of average speeds of a plurality of navigation devices through the segment for different recurring time periods; and a processor arranged to: receive position data from a plurality of navigation devices, the position data for the plurality of navigation device being representative of the position of each navigation device over time; generate at least one updated speed profile indicative of current traffic behavior for a plurality of segments by processing the position data from at least two of the plurality of navigation devices, each updated speed profile comprising data representative of an average speed of travel through the segment for a time period that has recently passed compare the updated speed profile with the respective average speed of the measured speed profile for the segment to determine if the average speed difference is above a predetermined threshold; identify, for each navigation device, the segments within a predetermined distance of a current position of the navigation device; and subsequently cause the transceiver to send the at least one updated speed profile determined to have an average speed difference above the predetermined threshold for any identified segments to each of the navigation devices.
 5. The server of claim 4, wherein the predetermined distance is determined based on a current speed of travel for the navigation device.
 6. The server of claim 4, wherein the predetermined distance is determined based on a bandwidth for a transmission of signals between the navigation device and a server.
 7. The server according to claim 4, wherein the data representative of an average speed of travel through the segment for a time period that has recently passed of each updated speed profile comprises: (i) an average speed; or (ii) a speed differential to be added to the respective average speed of the measured speed profile for the segment. 